Implement these functions. (#327226, Thomas Broyer)
authorAnders Carlsson <andersca@imendio.com>
Wed, 18 Jan 2006 09:47:56 +0000 (09:47 +0000)
committerAnders Carlsson <andersca@src.gnome.org>
Wed, 18 Jan 2006 09:47:56 +0000 (09:47 +0000)
2006-01-18  Anders Carlsson  <andersca@imendio.com>

        * gdk/quartz/gdkdrawable-quartz.c:
        (gdk_quartz_draw_polygon):
        (gdk_quartz_draw_lines):
Implement these functions.
(#327226, Thomas Broyer)

ChangeLog
ChangeLog.pre-2-10
gdk/quartz/gdkdrawable-quartz.c

index deb29f3bdb209647e9ca8e4ac209041150c65f49..75ff2f6f86ae01264feb45579b8a7d316c4a316e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,17 @@
+2006-01-18  Anders Carlsson  <andersca@imendio.com>
+
+        * gdk/quartz/gdkdrawable-quartz.c:
+        (gdk_quartz_draw_polygon):
+        (gdk_quartz_draw_lines):
+       Implement these functions.
+       (#327226, Thomas Broyer)
+       
 2006-01-18  Anders Carlsson  <andersca@imendio.com>
 
         * gdk/quartz/gdkkeys-quartz.c:
-        (maybe_update_keymap):
-           Support non-MacRoman keyboard layouts.
-           (#322585, Wolfgang Thaller)
+       (maybe_update_keymap):
+       Support non-MacRoman keyboard layouts.
+       (#322585, Wolfgang Thaller)
        
 2006-01-18  Anders Carlsson  <andersca@imendio.com>
 
index deb29f3bdb209647e9ca8e4ac209041150c65f49..75ff2f6f86ae01264feb45579b8a7d316c4a316e 100644 (file)
@@ -1,9 +1,17 @@
+2006-01-18  Anders Carlsson  <andersca@imendio.com>
+
+        * gdk/quartz/gdkdrawable-quartz.c:
+        (gdk_quartz_draw_polygon):
+        (gdk_quartz_draw_lines):
+       Implement these functions.
+       (#327226, Thomas Broyer)
+       
 2006-01-18  Anders Carlsson  <andersca@imendio.com>
 
         * gdk/quartz/gdkkeys-quartz.c:
-        (maybe_update_keymap):
-           Support non-MacRoman keyboard layouts.
-           (#322585, Wolfgang Thaller)
+       (maybe_update_keymap):
+       Support non-MacRoman keyboard layouts.
+       (#322585, Wolfgang Thaller)
        
 2006-01-18  Anders Carlsson  <andersca@imendio.com>
 
index d3adb8d2d7da7c8d2bff9d4ab1fc4ceee20da983..a6aeee9059215846872d91238e814aacbe9c7c20 100644 (file)
@@ -209,7 +209,33 @@ gdk_quartz_draw_polygon (GdkDrawable *drawable,
                         GdkPoint    *points,
                         gint         npoints)
 {
-  /* FIXME: Implement */
+  CGContextRef context = _gdk_quartz_drawable_get_context (drawable, FALSE, TRUE);
+  int i;
+
+  if (!context)
+    return;
+
+  _gdk_quartz_update_context_from_gc (context, gc);
+
+  if (filled)
+    _gdk_quartz_set_context_fill_color_from_pixel (context, gdk_drawable_get_colormap (drawable),
+                                                  _gdk_gc_get_fg_pixel (gc));
+  else
+    _gdk_quartz_set_context_stroke_color_from_pixel (context, gdk_drawable_get_colormap (drawable),
+                                                    _gdk_gc_get_fg_pixel (gc));
+
+  CGContextMoveToPoint (context, points[0].x, points[0].y);
+  for (i = 1; i < npoints; i++)
+    CGContextAddLineToPoint (context, points[i].x, points[i].y);
+
+  CGContextClosePath (context);
+
+  if (filled)
+    CGContextFillPath (context);
+  else
+    CGContextStrokePath (context);
+
+  _gdk_quartz_drawable_release_context (drawable, context);
 }
 
 static void
@@ -338,7 +364,25 @@ gdk_quartz_draw_lines (GdkDrawable *drawable,
                       GdkPoint    *points,
                       gint         npoints)
 {
-  /* FIXME: Implement */
+  CGContextRef context = _gdk_quartz_drawable_get_context (drawable, FALSE, TRUE);
+  int i;
+
+  if (!context)
+    return;
+
+  _gdk_quartz_update_context_from_gc (context, gc);
+  _gdk_quartz_set_context_stroke_color_from_pixel (context, gdk_drawable_get_colormap (drawable),
+                                                  _gdk_gc_get_fg_pixel (gc));
+  
+  for (i = 1; i < npoints; i++)
+    {
+      CGContextMoveToPoint (context, points[i - 1].x, points[i - 1].y);
+      CGContextAddLineToPoint (context, points[i].x, points[i].y);
+    }
+  
+  CGContextStrokePath (context);
+
+  _gdk_quartz_drawable_release_context (drawable, context);
 }
 
 static void